let fs = require('fs');
let path = require('path');
let express = require('express');
const e = require('express');
const { all } = require('proxy-addr');  

let app = express();

app.use(express.static('./public'));
app.use(express.json());

app.get('/', (req , res) => {
    // 方法一
    // res.end(fs.readFileSync('./public/index.html'));
    // 方法二 
    res.sendFile('./public/index.html');
});

// 获取所有英雄接口
app.get('/allHero' , (req,res) => {
    // 返回所有的英雄 -> 英雄在哪里? -> 模拟英雄数据 -> mockjs -> 单独创建文件 -> 生成英雄数据
    res.sendFile(path.join(__dirname ,'./hero.json'));
});

// 英雄类型接口
app.get('/heroType/type/:type' , (req,res) => {
    let {type} = req.params;
    // 获取所有的英雄, 从中过滤出 对应类型的英雄
    // 读取hero.josn文件, 获取所有的英雄
    let allHero = JSON.parse( fs.readFileSync('./hero.json'));
    if(type === '全部'){
        res.json(allHero);
        return; 
    }
    // 过滤数据
    let result = allHero.filter( hero => hero.type === type);
    // 返回数据
    res.json(result);
    // 也可以, 就是比较麻烦
    // res.end( JSON.stringify(result))

});

// 英雄排序接口
app.get('/heroSort/type/:type/flag/:flag' , (req,res) => {
    let {type, flag } = req.params;
    let result;
    // 获取所有的数据
    let allHero = JSON.parse(fs.readFileSync('./hero.json'));
    if(flag === '1'){
        // 数组排序
        result = allHero.sort((a,b) => b[type] - a[type]);
    }else{
        result = allHero.sort((a,b) => a[type] - b[type]);
    }
    res.json(result);
});


app.listen(8080,() => {
    console.log('服务已启动 http://localhost:8080');
})

